package com.yxb.cms.dao;

import com.yxb.cms.dao.expmle.CoursesExample;
import com.yxb.cms.domain.vo.CourseTime;
import com.yxb.cms.domain.vo.Courses;
import com.yxb.cms.domain.vo.Curriculum;
import com.yxb.cms.domain.vo.Work;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface CoursesMapper {
    long countByExample(Courses example);

    int deleteByExample(CoursesExample example);

    int deleteByPrimaryKey(Long id);

    int insert(Courses record);

    int insertSelective(Courses record);

    List<Courses> selectByExample(CoursesExample example);

    Courses selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") Courses record, @Param("example") CoursesExample example);

    int updateByExample(@Param("record") Courses record, @Param("example") CoursesExample example);

    int updateByPrimaryKeySelective(Courses record);

    int updateByPrimaryKey(Courses record);

    List<Courses>  selectCoursesPage(Courses record);

    List<Work> selectWork();

    List<Long> selectCourse();

    Long selectCurriculum(@Param("courseId") Long courseId,@Param("classTeachId") Long classTeachId);

    Long insertCurriculum(@Param("courseId") Long courseId,@Param("classTeachId") Long classTeachId
    ,@Param("isEffective") Integer isEffective,@Param("classId") Long classId);

   void deleteCurriculumByClassId(@Param("classId") Long classId,@Param("isEffective") Integer isEffective);

    CourseTime selectCourseTimeById(@Param("courseId") Long courseId);

    List<Curriculum> selectCurriculumByClassId(@Param("classId") Long classId);

    void updateCurriculumByClassId(@Param("classId") Long classId);
}